package com.wan.controller;

import com.wan.annotation.RequiresPermissions;
import com.wan.service.IUserService;
import com.wan.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * <p>
 * 用户表 前端控制器
 * </p>
 *
 * @author sf
 * @since 2025-01-13
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private IUserService userService;

    @Value("${student.sname}")
    private String sname;

    @Value("${student.age}")
    private int age;

    @Value("${server.port}")
    public int port;

    @Value("${classes.cname}")
    private String cname;

    // 获取用户列表
    @GetMapping("/list")
    @RequiresPermissions("user:list")
    public R list() {
        // 调用 userService 获取用户列表
        return R.ok(userService.list());
    }

    // 获取配置项：sname, age, cname
    @GetMapping("/getConfig")
    public R<Map> getConfig() {
        // 直接在方法中创建配置数据的 map，避免不必要的类变量
        return R.ok(new HashMap<String, Object>() {{
            put("sname", sname);
            put("age", age);
            put("cname", cname);
        }});
    }

    // 获取服务器端口
    @GetMapping("/getPort")
    public R getPort() {
        // 直接返回包含 port 的 map
        return R.ok(new HashMap<String, Object>() {{
            put("port", port);
        }});
    }
}
